﻿/*
7-23 币值转换 (20 分)
输入一个整数（位数不超过9位）代表一个人民币值（单位为元），请转换成财务要求的大写中文格式。如23108元，转换后变成“贰万叁仟壹百零捌”元。为了简化输出，用小写英文字母a-j顺序代表大写数字0-9，用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。

输入格式：
输入在一行中给出一个不超过9位的非负整数。

输出格式：
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。

输入样例1：
813227345
输出样例1：
iYbQdBcScWhQdBeSf
输入样例2：
6900
输出样例2：
gQjB
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

char i2c(int i) {
	return i + 'a';
}

const int W1 = 10000;

char getSymbol(int pos) {
	switch (pos) {
	case 1:
		return 0;
		break;
	case 5:
		return 'W';
		break;
	case 9:
		return 'Y';
		break;
	default:
		pos = (pos - 1) % 4 + 1;
		switch (pos) {
		case 2:
			return 'S';
			break;
		case 3:
			return 'B';
			break;
		case 4:
			return 'Q';
			break;
		}
	}
	return 0;
}

void num2rmb(int n) {
	char stack[255] = {};
	int i = 0;
	int si = 0;
	int pos = 0;
	int a = 0;

	if (n == 0)
		printf("a");
	while (n) {
		pos++;
		a = n % 10;
		if (pos > 1) {
			if (a > 0 || ((pos % 4) == 1)) {
				stack[si++] = getSymbol(pos);
			}
		}
		stack[si++] = i2c(a);
		n /= 10;
	}
	int zero = 0;
	for (i = --si; i >= 0; i--) {
		if (stack[i] == 'a') {
			zero = 1;
		}
		else {
			if (zero && stack[i] != 'W')
				printf("a");
			zero = 0;
			printf("%c", stack[i]);
		}
	}
	printf("\n");
}

int main() {
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/zju_C_Basic/data/7.23.txt", "r", stdin);
	int n = 0;
	scanf("%d", &n);
	for (n = 0; n <= 9; n++) {
		printf("%d ", n);
		num2rmb(n);
	}

	return 0;
}